package cn.tedu.boot.ers.mapper;

import cn.tedu.boot.ers.entity.User;
import cn.tedu.boot.ers.pojo.dto.UserUpdatePasswordDTO;
import cn.tedu.boot.ers.pojo.vo.UserDetailsVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.math.BigDecimal;
import java.util.List;

@Repository
public interface UserMapper {
    /**
     * 添加用户
     * @param user
     * @return
     */
    int insert(User user);

    /**
     * 根据用户传递密码修改密码
     * @return
     */

//    int updatePassword(@Param("rawPassword") String rawPassword,@Param("newPassword") String newPassword);
    int updatePassword(UserUpdatePasswordDTO userUpdatePasswordDTO);

    /**
     * 根据用户充值金额修改余额并设置用户等级
     * @param money
     * @return
     */
    int updateMoney(@Param("username") String username,@Param("money") BigDecimal money,
                    @Param("level") String level);


    /**
     * 根据用户名修改基本信息
     * @param tel
     * @param gender
     * @param headUrl
     * @return
     */
    int updateBaseInfo(@Param("tel") String tel ,@Param("gender") String gender ,
                       @Param("headUrl") String headUrl,@Param("username") String username);

    /**
     * 根据名字查询用户
     * @param username
     * @return
     */
    UserDetailsVO getByName(String username);

    /**
     * 根据电话查询用户详情
     * @param tel
     * @return
     */
    UserDetailsVO getByTel(String tel);

    /**
     * 查询所有用户信息
     * @return
     */
    List<UserDetailsVO> getUserList();

}
